﻿/*******************************************************************************
* file  : key
* creat : apleilx
* data  : 2017/03/02
*******************************************************************************/
#include "os_obj.h"                             
#include "iohandle.h"
#include "common.h"

/*******************************************************************************
* @brief 操作声明.
*******************************************************************************/
void key_exe_none(void);
void key_down_any(void);
void key_release_any(void);
void key_keep_any(void);
void key_idle(void);
void key_down_key1(void);
void key_release_key1(void);
void key_keep_key1(void);
void key_down_key2(void);
void key_release_key2(void);
void key_keep_key2(void);
void key_down_key12(void);
void key_release_key12(void);
void key_keep_key12(void);

/*******************************************************************************
* @brief   操作链接.
*******************************************************************************/
const key_opt_type key_list[] =
{
	{ 2, key_down_key1, key_keep_key1, key_release_key1 },
	{ 4, key_down_key2, key_keep_key2, key_release_key2 },
	{ 6, key_down_key12, key_keep_key12, key_release_key12 },
};

/*******************************************************************************
* @brief   按键接口.
*******************************************************************************/
const key_api_type key_api =
{
	key_down_any,
	key_keep_any,
	key_list,
	key_release_any,
	key_idle
};

/*******************************************************************************
* @brief   按键.
*******************************************************************************/
key_type key;

/*******************************************************************************
* @brief   task_key.
* @param   thread_input 参数
* @return  none
*******************************************************************************/
void task_key(void * thread_input)
{
	key.api = &key_api;

	while (1)
	{
		osDelay(500);
		key_st_handle(&key, 1);
	}
}

/*******************************************************************************
* @brief   空闲.
*******************************************************************************/
void key_idle(void)
{
	//key_dbg_puts("key idle\n");
}

/*******************************************************************************
* @brief   按键公共处理.
*******************************************************************************/
void key_exe_none(void)
{
	//key_dbg_puts("key exe none\n");
}

void key_down_any(void)
{
	key_dbg_puts("key down any\n");
}

void key_release_any(void)
{
	key_dbg_puts("key release any\n");
}

void key_keep_any(void)
{
	//key_dbg_puts("key keep any\n");
}

/*******************************************************************************
* @brief   key1.
*******************************************************************************/
void key_down_key1(void)
{
	key_dbg_puts("key down key 1\n");
}

void key_release_key1(void)
{
	key_dbg_puts("key release key 1\n");
}

void key_keep_key1(void)
{
	//key_dbg_puts("key keep key 1\n");
}

/*******************************************************************************
* @brief   key2.
*******************************************************************************/
void key_down_key2(void)
{
	key_dbg_puts("key down key 2\n");
}

void key_release_key2(void)
{
	key_dbg_puts("key release key 2\n");
}

void key_keep_key2(void)
{
	//key_dbg_puts("key keep key 2\n");
}

/*******************************************************************************
* @brief   key 1 2 组合.
*******************************************************************************/
void key_down_key12(void)
{
	key_dbg_puts("key down key 1+2\n");
}

void key_release_key12(void)
{
	key_dbg_puts("key release key 1+2\n");
}

void key_keep_key12(void)
{
	//key_dbg_puts("key keep key 1+2\n");
}
